//
// Created by Tony on 2024/5/19.
//

#ifndef LEXER_STRING_TOKEN_H
#define LEXER_STRING_TOKEN_H

#include "Token.h"

namespace Lexer {

class StringToken final : public Token {
    string value;

public:
    StringToken(const Position& position, string value)
        : Token(position), value(std::move(value)) {}

    TokenType type() override { return TokenType::STRING_LITERAL; }

    string& getValue() { return value; }

    string toString() override { return value; }
};

} // namespace Lexer

#endif // LEXER_STRING_TOKEN_H
